home *** CD-ROM | disk | FTP | other *** search
/ X User Tools / X User Tools (O'Reilly and Associates)(1994).ISO / sun4c / archive / tcltk.z / tcltk / man / catn / proc.n < prev    next >
Text File  |  1994-09-20  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. proc(n)               Tcl Built-In Commands
  5.  
  6.  
  7.  
  8. _________________________________________________________________
  9.  
  10. NAME
  11.      proc - Create a Tcl procedure
  12.  
  13. SYNOPSIS
  14.      proc _n_a_m_e _a_r_g_s _b_o_d_y
  15. _________________________________________________________________
  16.  
  17.  
  18. DESCRIPTION
  19.      The proc command creates a new  Tcl  procedure  named  _n_a_m_e,
  20.      replacing  any  existing command or procedure there may have
  21.      been by that name.  Whenever the new command is invoked, the
  22.      contents  of  _b_o_d_y  will be executed by the Tcl interpreter.
  23.      _A_r_g_s specifies the formal arguments to  the  procedure.   It
  24.      consists  of  a list, possibly empty, each of whose elements
  25.      specifies one argument.  Each argument specifier is  also  a
  26.      list with either one or two fields.  If there is only a sin-
  27.      gle field in the specifier then it is the name of the  argu-
  28.      ment;  if  there are two fields, then the first is the argu-
  29.      ment name and the second is its default value.
  30.  
  31.      When _n_a_m_e is invoked a local variable will  be  created  for
  32.      each  of  the  formal  arguments to the procedure; its value
  33.      will be the value of corresponding argument in the  invoking
  34.      command  or  the  argument's  default value.  Arguments with
  35.      default values need not be specified in a procedure  invoca-
  36.      tion.   However,  there  must be enough actual arguments for
  37.      all the formal arguments that don't have defaults, and there
  38.      must  not  be any extra actual arguments.  There is one spe-
  39.      cial case to permit  procedures  with  variable  numbers  of
  40.      arguments.   If  the last formal argument has the name args,
  41.      then a call to the procedure may contain more  actual  argu-
  42.      ments  than the procedure has formals.  In this case, all of
  43.      the actual arguments starting  at  the  one  that  would  be
  44.      assigned  to  args  are combined into a list (as if the list
  45.      command had been used); this combined value is  assigned  to
  46.      the local variable args.
  47.  
  48.      When _b_o_d_y is being executed, variable names  normally  refer
  49.      to  local  variables,  which  are created automatically when
  50.      referenced and deleted  when  the  procedure  returns.   One
  51.      local  variable  is  automatically  created  for each of the
  52.      procedure's  arguments.   Global  variables  can   only   be
  53.      accessed  by  invoking  the global command or the upvar com-
  54.      mand.
  55.  
  56.      The proc command returns an empty string.  When a  procedure
  57.      is invoked, the procedure's return value is the value speci-
  58.      fied in a return command.  If the procedure doesn't  execute
  59.      an  explicit  return,  then its return value is the value of
  60.  
  61.  
  62.  
  63. Tcl                                                             1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. proc(n)               Tcl Built-In Commands
  71.  
  72.  
  73.  
  74.      the last command executed in the procedure's  body.   If  an
  75.      error  occurs  while  executing the procedure body, then the
  76.      procedure-as-a-whole will return that same error.
  77.  
  78.  
  79. KEYWORDS
  80.      argument, procedure
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. Tcl                                                             2
  130.  
  131.  
  132.  
  133.